package kruispunt;

	
public class Kruispunt {

	Zijde zuid,oost,noord,west;

	public Kruispunt() {
		zuid = new Zijde(0,2);  //Prioriteit voor Noord-Zuid verkeer
		oost = new Zijde(7,0);
		noord = new Zijde(14,2); //Prioriteit voor Noord-Zuid verkeer
		west = new Zijde(21,0);
	}
	
	public Integer getBaanPrioriteit(Integer baanID) { 
		int zijde = baanID / 7;
		int baan = baanID % 7;
		switch(zijde) {
			case 0	: return zuid.getBaanPrioriteit(baan);
			case 1  : return oost.getBaanPrioriteit(baan);
			case 2  : return noord.getBaanPrioriteit(baan);
			case 3  : return west.getBaanPrioriteit(baan);
			default : {
				System.out.println("!!! -1 bij getBaanPrioriteit in Kruispunt!");
				return -1;
			}
		}		
	}
	
	public void doTrigger(int baanID) { // Knop van fietsers/voetgangers of auto over 100M lus.
		int zijde = baanID / 7;
		int baan = baanID % 7;
		switch(zijde) {
			case 0	: zuid.doTrigger(baan);break;
			case 1  : oost.doTrigger(baan);break;
			case 2  : noord.doTrigger(baan);break;
			case 3  : west.doTrigger(baan);break;
		}				
	}
	
	public void verwijderAuto(int baanID) { // Auto over 1M lus
		int zijde = baanID / 7;
		int baan = baanID % 7;
		switch(zijde) {
			case 0	: zuid.autoVanBaan(baan);break;
			case 1  : oost.autoVanBaan(baan);break;
			case 2  : noord.autoVanBaan(baan);break;
			case 3  : west.autoVanBaan(baan);break;
		}				
	}

	public void addTurn(int baanID) {
		int zijde = baanID / 7;
		int baan = baanID % 7;
		switch(zijde) {
			case 0	: zuid.addTurn(baan);break;
			case 1  : oost.addTurn(baan);break;
			case 2  : noord.addTurn(baan);break;
			case 3  : west.addTurn(baan);break;
		}
	}
	
	public void resetBaan(int baanID) {
		int zijde = baanID / 7;
		int baan = baanID % 7;
		switch(zijde) {
			case 0	: zuid.resetBaan(baan);break;
			case 1  : oost.resetBaan(baan);break;
			case 2  : noord.resetBaan(baan);break;
			case 3  : west.resetBaan(baan);break;
		}						
	}
	

	
}
